from tkinter import *      
from ClaseListaParaArbol import *

def escojeArchivoEntrada():
    campoTextoEntrada.delete(0, END)
    global nombreArchivoEntrada
    nombreArchivoEntrada = filedialog.askopenfilename(parent=ventana,title='Escoje el Archivo')
    if len(nombreArchivoEntrada) > 0:
        campoTextoEntrada.insert(0,nombreArchivoEntrada)
    else:
        campoTextoEntrada.delete(0, END)
        campoTextoEntrada.insert(0,"Selecciona un archivo")
        
    nombreArchivoEntrada = campoTextoEntrada.get()
    print (nombreArchivoEntrada)


def escojeRutaCompreso():
    campoTextoSalida.delete(0, END)
    FormatoC = [
        ('Compresor Huffman','*.cph'),
        ]
    global nombreArchivoSalida
    nombreArchivoSalida = filedialog.asksaveasfilename(parent=ventana,filetypes=FormatoC ,title="Guardar Archivo en...")
    if len(nombreArchivoSalida) > 0:
        nombreArchivoSalida = nombreArchivoSalida+".cph"
        campoTextoSalida.insert(0,nombreArchivoSalida)
    else:
        campoTextoSalida.delete(0, END)
        campoTextoSalida.insert(0,"La ruta del Archivo no esta definida")
        
    nombreArchivoSalida = campoTextoSalida.get()
    print (nombreArchivoSalida)
    try:
        listaDelArbolAComp=ListaArbol.generarListaArbol(nombreArchivoEntrada)
        print (listaDelArbolAComp)
    except IOError:
        print ("No has seleccionado un archivo a abrir")


def escojeRutaDescompreso():
    campoTextoSalidaD.delete(0, END)
    FormatoD = [
        ('Archivo de Texto','*.txt'),
        ]
    global nombreArchivoSalidaD
    nombreArchivoSalidaD = filedialog.asksaveasfilename(parent=ventana,filetypes=FormatoD ,title="Guardar Archivo en...")
    if len(nombreArchivoSalidaD) > 0:
        nombreArchivoSalidaD = nombreArchivoSalidaD+".txt"
        campoTextoSalidaD.insert(0,nombreArchivoSalidaD)
    else:
        campoTextoSalidaD.delete(0, END)
        campoTextoSalidaD.insert(0,"La ruta del Archivo no esta definida")
        
    nombreArchivoSalidaD = campoTextoSalidaD.get()
    print (nombreArchivoSalidaD)
            
    


#nombreArchivoEntrada=""

ventana = Tk()

ventana.title("Compresor Huffman")
ventana.maxsize(height=180,width=600)
ventana.minsize(height=180,width=600)
ventana.geometry("180x600")

Label(ventana, text="           ").grid(row=0)
Label(ventana, text="             ").grid(column=2)
Label(ventana, text="").grid(row=2)
Label(ventana, text="").grid(row=4)
Label(ventana, text="  Comprime y Descomprime archivos de texto").grid(row=6,column=1)


campoTextoEntrada = Entry(ventana, width=60)
campoTextoEntrada.grid(row=1, column=1)
botonAbrirLectura = Button(ventana, text="Abrir...", width=15, command=escojeArchivoEntrada)
botonAbrirLectura.grid(row=1, column=3)


campoTextoSalida = Entry(ventana, width=60)
campoTextoSalida.grid(row=3, column=1)
botonAbrirEscritura = Button(ventana, text="Comprimir", width=15, command=escojeRutaCompreso)
botonAbrirEscritura.grid(row=3, column=3)


campoTextoSalidaD = Entry(ventana, width=60)
campoTextoSalidaD.grid(row=5, column=1)
botonAbrirEscrituraD = Button(ventana, text="Desomprimir", width=15, command=escojeRutaDescompreso)
botonAbrirEscrituraD.grid(row=5, column=3)





ventana.mainloop()




